/**
 * 
 */
package com.yilin.medical.utils;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * @title 
 * @description 本地share文件的读写
 * @company 北京扎根网络信息技术有限公司
 * @author Jack Zhang
 * @version 1.0
 * @created 2014-8-22 下午3:25:10
 * @changeRecord [修改记录]<br />
 */
public class JxLocalSharedFileUtils {
	
	//本地文件名称
	private static final String JX_ZG_SHARE_FILE_NAME = "jx_zhagen";
	//设置中push开关的  key
	private static final String ZG_ABOUT_SETTING_PUSH_SWITCH_KEY = "ZG_ABOUT_SETTING_PUSH_SWITCH_KEY"; 
	//设置中wifi全景的key
	private static final String ZG_ABOUT_SETTING_WIFI_SWITCH_KEY = "ZG_ABOUT_SETTING_WIFI_SWITCH_KEY";
	//设置中清除缓存的时间的  key
	private static final String ZG_ABOUT_SETTING_CLEAN_CATCH_KEY = "ZG_ABOUT_SETTING_CLEAN_CATCH_KEY"; 
	//手动设置deviceid的key
	private static final String ZG_MT_DEVICEID_KEY = "ZG_MT_DEVICEID_KEY";
	
	/**
	 * 
	  * 方法描述 		将push开关设置写入本地文件
	  * create: 2014-8-22下午3:45:05
	  * @param model 参数描述
	  * @return 返回值描述
	 */
	public static void setAboutSettingPushSwitch(Context ctx,boolean pushSwitch){
		SharedPreferences sharedFile = ctx.getSharedPreferences(JX_ZG_SHARE_FILE_NAME, Context.MODE_PRIVATE);
		sharedFile.edit().putBoolean(ZG_ABOUT_SETTING_PUSH_SWITCH_KEY, pushSwitch).commit();
	}
	/**
	 * 
	  * 方法描述 		获取push开关设置
	  * create: 2014-8-22下午3:55:13
	  * @param model 参数描述
	  * @return true：为开启，false：为关闭
	 */
	public static boolean getAboutSettingPushSwitch(Context ctx){
		boolean pushSwitch = true;
		SharedPreferences sharedFile = ctx.getSharedPreferences(JX_ZG_SHARE_FILE_NAME, Context.MODE_PRIVATE);
		pushSwitch = sharedFile.getBoolean(ZG_ABOUT_SETTING_PUSH_SWITCH_KEY, true);
		return pushSwitch;
	}
	/**
	 * 
	  * 方法描述	设置是否开启wifi全景，默认开启
	  * create: 2014-12-19下午4:27:53
	  * @param model 参数描述
	  * @return 返回值描述
	 */
	public static void setSettingWifiSwitch(Context ctx , boolean wifiSwitch){
		SharedPreferences sharedFile = ctx.getSharedPreferences(JX_ZG_SHARE_FILE_NAME, Context.MODE_PRIVATE);
		sharedFile.edit().putBoolean(ZG_ABOUT_SETTING_WIFI_SWITCH_KEY, wifiSwitch).commit();
	}
	/**
	 * 
	  * 方法描述	获取wifi全景的开关值
	  * create: 2014-12-19下午6:05:35
	  * @param model 参数描述
	  * @return 返回值描述
	 */
	public static boolean getSettingWifiSwitch(Context ctx){
		boolean wifiSwitch = true;
		SharedPreferences sharedFile = ctx.getSharedPreferences(JX_ZG_SHARE_FILE_NAME, Context.MODE_PRIVATE);
		wifiSwitch = sharedFile.getBoolean(ZG_ABOUT_SETTING_WIFI_SWITCH_KEY, true);
		return wifiSwitch;
	}
	/**
	 * 
	  * 方法描述		将设置中清除缓存的时间写入本地
	  * create: 2014-8-22下午5:05:49
	  * @param model 参数描述
	  * @return 返回值描述
	 */
	public static void setAboutSettingCleanCatchTime(Context ctx,long time){
		SharedPreferences sharedFile = ctx.getSharedPreferences(JX_ZG_SHARE_FILE_NAME, Context.MODE_PRIVATE);
		sharedFile.edit().putLong(ZG_ABOUT_SETTING_CLEAN_CATCH_KEY, time).commit();
	}
	/**
	 * 
	  * 方法描述		获取设置中清除缓存的时间
	  * create: 2014-8-22下午5:08:08
	  * @param model 参数描述
	  * @return 返回值描述
	 */
	public static long getAboutSettingCleanCatchTime(Context ctx){
		long time = 0;
		SharedPreferences sharedFile = ctx.getSharedPreferences(JX_ZG_SHARE_FILE_NAME, Context.MODE_PRIVATE);
		time = sharedFile.getLong(ZG_ABOUT_SETTING_CLEAN_CATCH_KEY, 0);
		return time;
	}
	/**
	 * 
	  * 方法描述		如果没有设备号，则手动将当前时间写入本地，作为设备号
	  * create: 2014-8-28下午2:00:53
	  * @param model 参数描述
	  * @return 返回值描述
	 */
	private static String putMTDeviceId(Context ctx){
		String time = System.currentTimeMillis()+"";
		SharedPreferences sharedFile = ctx.getSharedPreferences(JX_ZG_SHARE_FILE_NAME, Context.MODE_PRIVATE);
		sharedFile.edit().putString(ZG_MT_DEVICEID_KEY, time).commit();
		JxLogUtil.d( "device id is ..putMTDeviceId..: "+time);
		return time;
	}
	/**
	 * 
	  * 方法描述		获取手动写入本地的deviceid
	  * create: 2014-8-28下午2:10:36
	  * @param model 参数描述
	  * @return 返回值描述
	 */
	public static String getMTDeviceId(Context ctx){
		String deviceId = "no_value";
		SharedPreferences sharedFile = ctx.getSharedPreferences(JX_ZG_SHARE_FILE_NAME, Context.MODE_PRIVATE);
		deviceId = sharedFile.getString(ZG_MT_DEVICEID_KEY, "no_value");
		JxLogUtil.d( "device id is ...getMTDeviceId.: "+deviceId);
		if(deviceId.trim().equals("no_value")){
			deviceId = putMTDeviceId(ctx);
		}
		return  deviceId;
	}
}
